package com.genreate.util.jtk.reqRes;

import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 钉钉 信息
 *
 * @author LYS
 * @date 2025-01-22
 */
@NoArgsConstructor
@Data
public class DingdingUnionInfoRes {
    /**
     * 扩展字段
     */
    private String extension;
    /**
     * 员工在当前企业的唯一标识
     */
    private String unionid;
    /**
     * 是否为部门主管
     */
    private String boss;
    /**
     * 角色列表
     */
    private RoleListDTO roleList;
    /**
     * 是否独占账号
     */
    private Boolean exclusiveAccount;
    /**
     * 管理员用户ID
     */
    private String managerUserid;
    /**
     * 是否为管理员
     */
    private String admin;
    /**
     * 备注
     */
    private String remark;
    /**
     * 职位
     */
    private String title;
    /**
     * 入职日期
     */
    private String hiredDate;
    /**
     * 员工ID
     */
    private String userid;
    /**
     * 工作地点
     */
    private String workPlace;
    /**
     * 部门排序列表
     */
    private DeptOrderListDTO deptOrderList;
    /**
     * 是否实名认证
     */
    private String realAuthed;
    /**
     * 部门ID列表
     */
    private String deptIdList;
    /**
     * 工号
     */
    private String jobNumber;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 部门主管信息
     */
    private LeaderInDeptDTO leaderInDept;
    /**
     * 手机号
     */
    private String mobile;
    /**
     * 是否激活
     */
    private String active;
    /**
     * 企业邮箱
     */
    private String orgEmail;
    /**
     * 电话
     */
    private String telephone;
    /**
     * 头像
     */
    private String avatar;
    /**
     * 是否隐藏手机号
     */
    private String hideMobile;
    /**
     * 是否为高管
     */
    private String senior;
    /**
     * 姓名
     */
    private String name;
    /**
     * 员工扩展信息
     */
    private UnionEmpExtDTO unionEmpExt;
    /**
     * 状态码
     */
    private String stateCode;

    @NoArgsConstructor
    @Data
    public static class RoleListDTO {
        /**
         * 角色组名称
         */
        private String groupName;
        /**
         * 角色名称
         */
        private String name;
        /**
         * 角色ID
         */
        private String id;
    }

    @NoArgsConstructor
    @Data
    public static class DeptOrderListDTO {
        /**
         * 部门ID
         */
        private String deptId;
        /**
         * 排序
         */
        private String order;
    }

    @NoArgsConstructor
    @Data
    public static class LeaderInDeptDTO {
        /**
         * 部门主管
         */
        private String leader;
        /**
         * 部门ID
         */
        private String deptId;
    }

    @NoArgsConstructor
    @Data
    public static class UnionEmpExtDTO {
        /**
         * 员工映射列表
         */
        private UnionEmpMapListDTO unionEmpMapList;
        /**
         * 员工ID
         */
        private String userid;
        /**
         * 企业ID
         */
        private String corpId;

        @NoArgsConstructor
        @Data
        public static class UnionEmpMapListDTO {
            /**
             * 员工ID
             */
            private String userid;
            /**
             * 企业ID
             */
            private String corpId;
        }
    }
}
